Skip to content

Add talk thumbnail rendering for slides and download#75

Open
samholmes wants to merge 3 commits intomainfrom
sam/talk-thumbnails
Open

Add talk thumbnail rendering for slides and download#75
samholmes wants to merge 3 commits intomainfrom
sam/talk-thumbnails

Conversation

@samholmes
Copy link
Contributor

@samholmes samholmes commented Feb 10, 2026

Note

Medium Risk
Adds new client-side SVG rendering and raster export logic (fetching/embedding images, canvas conversion) plus writes a new talk_hook field into talk_submissions, which can affect data shape and introduce cross-origin/image-loading edge cases.

Overview
Adds a new TalkThumbnail client component that renders a DEVx-styled 16:9 SVG thumbnail (background texture, hook text with simple wrapping, and optional circular speaker photo clipping).

Updates submit-talk to capture an optional hook string, persist it as talk_hook in talk_submissions, load profile_photo from profiles, and show an inline thumbnail preview using the user’s name/photo.

Introduces a talk-thumbnail-gen page to build thumbnails from a hook plus either an uploaded photo or a profile photo looked up by handle, with PNG/JPG download by embedding SVG images as data URLs and rasterizing via canvas. Also bumps the supabase CLI dev dependency and adds dev:supabase, plus a small JSON formatting change in a slide metadata.json.

Written by Cursor Bugbot for commit ed65315. This will update automatically on new commits. Configure here.

@samholmes samholmes requested a review from tomatrow February 10, 2026 02:38
@samholmes samholmes force-pushed the sam/talk-thumbnails branch 2 times, most recently from 5272248 to 7bf53ab Compare February 10, 2026 02:50
Copy link
Contributor

@tomatrow tomatrow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only issue might be lack of speaker name on the talk card.

Looks good to me otherwise.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 5 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

@samholmes
Copy link
Contributor Author

Review Summary

All 25 automated review comments have been addressed ✅

# Comment Status
1 SVG percentage dimensions cause blurry rasterized downloads ✅ Fixed in c356c45
2 Hardcoded SVG clipPath of causes multi-instance collision ✅ Fixed in c356c45
3 Empty talkAdobe sources malformed download filenames ✅ Fixed in c356c45
4 Upload blob URL enrichment cleanup ✅ Fixed in 48dda1b
5 Lookup path leaves stale file input value ✅ Fixed in 72A4d8e

All issues have been verified in the current code. Ready for re-review.

Rename the TalkThumbnail `talkTitle` prop to `hook` to better reflect
its purpose as short, punchy thumbnail text. Add a dedicated Hook field
to the talk submission form (defaults to talk title via placeholder) and
persist it as `talk_hook` in the database with a 50-char limit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants